package com.vzaar.type
{
	[Bindable]
	public class VzaarAccountType
	{
		/// <summary>
		/// The vzaar API version number.
		/// </summary>
		/// <returns>The vzaar API version number</returns>

		private var _version:String;

		public function get version():String
		{
			return _version;
		}

		public function set version(value:String):void
		{
			_version = value;
		}

		/// <summary>
		/// The vzaar account ID.
		/// </summary>
		/// <returns>The vzaar account ID</returns>
		private var _accountId:int;

		public function get accountId():int
		{
			return _accountId;
		}

		public function set accountId(value:int):void
		{
			_accountId = value;
		}

		/// <summary>
		/// The name of the vzaar account.
		/// </summary>
		/// <returns>The name of the vzaar account</returns>
		private var _title:String;

		public function get title():String
		{
			return _title;
		}

		public function set title(value:String):void
		{
			_title = value;
		}

		/// <summary>
		/// The monthly cost of the account in the given currency.
		/// </summary>
		/// <returns>The monthly cost of the account in the given currency</returns>
		private var _monthly:int;

		public function get monthly():int
		{
			return _monthly;
		}

		public function set monthly(value:int):void
		{
			_monthly = value;
		}

		/// <summary>
		/// The currency the account is charged in. Currently this is only in dollars.
		/// </summary>
		/// <returns>The currency the account is charged in</returns>
		private var _currency:String;

		public function get currency():String
		{
			return _currency;
		}

		public function set currency(value:String):void
		{
			_currency = value;
		}

		/// <summary>
		/// The amount of monthly bandwidth allocated to a user for video service 
		/// and playing.
		/// </summary>
		/// <returns>The amount of monthly bandwidth allocated</returns>
		private var _bandwidth:Number;

		public function get bandwidth():Number
		{
			return _bandwidth;
		}

		public function set bandwidth(value:Number):void
		{
			_bandwidth = value;
		}

		/// <summary>
		/// Is the user is allowed to use a player with no skin.
		/// </summary>
		/// <returns>The user is allowed to use a player with no skin</returns>
		private var _borderless:Boolean;

		public function get isBorderless():Boolean
		{
			return _borderless;
		}

		public function set isBorderless(value:Boolean):void
		{
			_borderless = value;
		}

		/// <summary>
		/// Is the user is allowed to optimize where google directs video traffic.
		/// </summary>
		/// <returns>The user is allowed to optimize where google directs video traffic</returns>
		private var _searchEnhancer:Boolean;

		public function get isSearchEnhancer():Boolean
		{
			return _searchEnhancer;
		}

		public function set isSearchEnhancer(value:Boolean):void
		{
			_searchEnhancer = value;
		}

		public function VzaarAccountType(version:String = "", accountId:int = 0, title:String = "", monthly:int = 0, currency:String = "", bandwidth:Number = 0, borderless:Boolean = false, searchEnhancer:Boolean = false)
		{
			_version = version;
			_accountId = accountId;
			_title = title;
			_monthly = monthly;
			_currency = currency;
			_bandwidth = bandwidth;
			_borderless = borderless;
			_searchEnhancer = searchEnhancer;
		}

		/// <summary>
		/// String representation of the contents of this account bean.
		/// </summary>
		/// <returns>String representation of the contents of this account bean.</returns>
		public function toString():String
		{
			return "version=" + _version + "  account=" + _accountId + "  title=" + _title +
					"  monthly=" + _monthly + "  currency=" + _currency +
					"  bandwidth=" + _bandwidth + "  borderless=" + _borderless +
					"  searchEnhancer=" + _searchEnhancer;
		}
	}
}